[筆記] MySQL 環境安裝(Ubuntu 18.04)與 phpMyAdmin 架設


1.虛擬機環境架設

Ubuntu載點:https://www.ubuntu-tw.org/modules/tinyd0/ 選擇桌面版本、18.04、64位元
Virtualbox載點 Windows hosts
https://download.virtualbox.org/virtualbox/6.1.30/VirtualBox-6.1.30-148432-Win.exe

1.開啟 Virtualbox 並新增新的虛擬機與進行環境設定

依順序執行檔進行設定(以記憶體:2048MB、硬碟:20GB為例)

建立完後進入設定頁面更改環境
系統-處理器 CPU改為4顆
進入存放裝置-磁碟檔中放入剛所下載的iso檔

網路設定選擇橋接介面卡

2.設定完後開啟虛擬機,開始安裝流程






3.安裝 VirtualBox Guest Additions 讓操作更方便





執行完後跳出即可
並設定雙向功能,讓虛擬機可貼上複製內容

虛擬機的基礎環境就架設完畢喽~

2.SQL架設&簡易指令測試

(1)SQL架設

1.開啟終端機

以 sudo 身份運行以下命令,以便從 APT 存儲庫安裝 MySQL

$ sudo apt-get update
$ sudo apt-get install mysql-server

2.隨後運行隨附的安全腳本進行安全配置

$ sudo mysql_secure_installation

下圖步驟選擇 N,其他選擇 Y 即可

3.設定完後確認有無正常運行

$ systemctl status mysql.service


如未運行,則用以下命令來啟動該服務:

$ sudo systemctl start mysql

(2)簡易指令測試

啟動 mysql

$ sudo mysql


以下指令為顯示資料庫
SHOW DATABASES;

以下指令為建立出一個名為dbname的資料庫
CREATE DATABASE dbname;

USE dbname;

以下指令為顯示目前資料庫中的所有表格
SHOW TABLES;

以下指令為建立名為users的表格,這個表格有兩個欄位。第一個欄位是userid,儲存的資料型別是tinyint SIGNED(有號8-bit整數),必須NOT NULL(不能是空的),且作為每列(row)資料的PRIMARY KEY(主鍵),會AUTO_INCREMENT(自動遞增)。第二個欄位是username,儲存的資料型別是varchar(50)(最大可以存50個字元)

CREATE TABLE `users` (
    `userid` tinyint SIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT,
    `username` varchar(50)
);

以下指令為顯示users表格是怎麼被建立的
SHOW CREATE TABLE users;

以下指令為查詢users表格中的所有資料
SELECT * FROM users;

以下指令為插入字串Bob、Mary...至users表格中

INSERT INTO `users` (`username`) VALUES ('Bob');
INSERT INTO `users` (`username`) VALUES ('Mary');
INSERT INTO `users` (`username`) VALUES ('John');
INSERT INTO `users` (`username`) VALUES ('Joe');
INSERT INTO `users` (`username`) VALUES ('test');

以下指令可建立出能從本地端(localhost)登入 MySQL 伺服器的使用者 dbuser,密碼為 test

CREATE USER 'dbuser'@'localhost' IDENTIFIED BY 'test';

以下指令可讓從本地端(localhost)登入 MySQL 伺服器的使用者 dbuser,擁有 dbname 資料庫的所有權限

GRANT ALL ON dbname.* TO 'dbuser'@'localhost';

以下指令可建立出能從本地端(localhost)登入 MySQL 伺服器的使用者 dbsuperuser,密碼為 test,並讓 dbsuperuser,擁有所有資料庫的存取權限,而且可以把權限再分出去。

CREATE USER 'dbsuperuser'@'localhost' IDENTIFIED BY 'test';
GRANT ALL ON *.* TO 'dbsuperuser'@'localhost' WITH GRANT OPTION;

基礎指令測試完即可輸入 quit,結束執行 mysql。

3.phpmyadmin web架設

(1)簡易架設 nginx web server

輸入以下指令

$ sudo apt-get install nginx -y
$ sudo systemctl status nginx

檢查是否可以訪問預設網頁,在虛擬機的瀏覽器中輸入:
http://127.0.0.1http://localhost
如果配置正常,可以看到一個類似於下面的頁面,說明 nginx 伺服器是正常的

(2)透過 nginx 執行 PHP 程式

執行以下指令可以安裝PHP的執行環境:

$ sudo apt install php-cli -y

輸入以下指令可以查看PHP的版本:

$ php -v

執行以下指令安裝 FPM

$ sudo apt-get install php-fpm php-cgi php-mysql php-common php-pear php-mbstring -y

驗證 php fpm 是否安裝並啟用成功
先用以下指令安裝 socat

$ sudo apt install socat -y

執行以下指令來判斷 FPM 有沒有正常工作:

$ echo /dev/null | sudo socat unix:/var/run/php/php7.2-fpm.sock - && echo "Working!" || echo "Not working!"

設定 php.ini
打開 php.ini 將 cgi.fix_pathinfo 取消註解並設為 0:

$ sudo gedit /etc/php/7.2/fpm/php.ini

重啟 php-fpm

$ sudo systemctl restart php7.2-fpm

編輯nginx預設組態, 新增index.php預設執行php網頁, phpMyAdministrator會使用到
並修改php區塊, 去除註解, 並注意fpm版本是否正確

$ sudo gedit /etc/nginx/sites-available/default

修改下圖中紅字部分
可複製:try_files $uri $uri/ /index.php?q=$uri&$args;

重啟 nginx 驗證設定檔格式是否有錯

$ sudo systemctl reload nginx
$ sudo nginx -t

(3)安裝 phpMyAdmin

$ sudo apt install phpmyadmin

1.
安裝過程需要設定phpMyAdmin,一開始會要求選擇網頁伺服器,因為我們的伺服器環境是Nginx+PHP(via FPM)+MySQL,所以這邊什麼都不選。直接按Enter鍵確認選擇。
最後會詢問是否要設定dbconfig-common,選擇「是」(Yes)吧!

dbconfig-common將需要建立一個新的MySQL使用者來操作運行phpMyAdmin資料庫管理工具時需要額外用到的資料表,預設的使用者名稱為phpmyadmin,所以接著要設定phpmyadmin這個MySQL使用者的密碼。

再輸入一次剛才輸入的phpmyadmin使用者的密碼。

新的MySQL使用者phpmyadmin建立完成後,phpMyAdmin就算是安裝完畢了

2.
設定Nginx
phpMyAdmin的PHP程式放置在/usr/share/phpmyadmin目錄中,我們可以利用Nginx設定檔的root命令來製作一個phpMyAdmin的location區塊。設定方式如下

$ sudo gedit /etc/nginx/sites-available/default

將程式碼插入下圖位置

location = /phpmyadmin {
        return 301 /phpmyadmin/;
    }

    location ^~ /phpmyadmin/ {
        root /usr/share;

        allow 127.0.0.1;
        deny all;

        fastcgi_read_timeout 1440s;
        fastcgi_send_timeout 1440s;
        if ($uri ~ \.php$) {
            fastcgi_pass unix:/run/php/php7.2-fpm.sock;
        } 
        include fastcgi.conf;
    }

重啟 nginx,驗證設定檔格式是否有錯

$ sudo systemctl reload nginx
$ sudo nginx -t

phpmyAdmin 錯誤修正, 主要因 php 不同版本函數問題

(1)

$ sudo cp /usr/share/phpmyadmin/libraries/sql.lib.php /usr/share/phpmyadmin/libraries/sql.lib.php.bak
$ sudo gedit /usr/share/phpmyadmin/libraries/sql.lib.php
查找 (count($analyzed_sql_results['select_expr'] == 1)
然後多新增括號 ((count($analyzed_sql_results['select_expr']) == 1)
完成後存檔離開

(2)

$ sudo cp /usr/share/phpmyadmin/libraries/plugin_interface.lib.php /usr/share/phpmyadmin/libraries/plugin_interface.lib.php.bak
$ sudo gedit /usr/share/phpmyadmin/libraries/plugin_interface.lib.php
查找
if ($options != null && count($options) > 0)
然後新增(array) 
if (! is_null($options) && count((array)$options) > 0) 
完成後存檔離開

4.在本機使用 phpmyadmin (不需使用linux)

下載 xampp 8.1.4
https://www.apachefriends.org/zh_tw/download.html

跑完程式後,改用系統管理員身分執行以便開啟 MySQL 的 admin

隨後修改 Apache 設定,以開啟 admin




完成後在瀏覽器上輸入 localhost:8000/dashboard 再按右上角的 phpmyadmin 即可使用 phpmyadmin

#MySQL #ubuntu #phpmyadmin #nginx






你可能感興趣的文章

環境變數 Environment Variable

環境變數 Environment Variable

希望是最淺顯易懂的 RxJS 教學

希望是最淺顯易懂的 RxJS 教學

create react app 專案 git push 推不上 remote repo

create react app 專案 git push 推不上 remote repo






留言討論